# encoding: utf-8
# @Author: zsl
# @Desc : 音乐播放器
# 音乐播放器，可让你快速轻松地管理和收听所有音乐文件。
# 应该不少小伙伴都使用过，网易云音乐、QQ音乐、酷狗音乐等，这里小F将使用Pygame和Tkinter，来创建一个音乐播放器
# 这个音乐播放器可以加载多个音频文件，并提供播放、暂停、上一首和下一首的功能。
# 它使用tkinter创建了用户界面，使用pygame库来播放音乐。
# 请注意，在运行代码之前，请确保已经安装了pygame库。可以使用pip install pygame来安装。
# 选择音乐文件所在的文件夹，点击播放，即可听见音乐。
# @Date  : 2025/07/08 17:03
import tkinter as tk
from tkinter import filedialog
import pygame

class MusicPlayer:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("音乐播放器")

        self.song_list = []
        self.current_song_index = 0

        self.load_button = tk.Button(self.root, text="加载音乐", command=self.load_songs)
        self.load_button.pack()

        self.play_button = tk.Button(self.root, text="播放", command=self.play_song)
        self.play_button.pack()

        self.pause_button = tk.Button(self.root, text="暂停", command=self.pause_song)
        self.pause_button.pack()

        self.next_button = tk.Button(self.root, text="下一首", command=self.next_song)
        self.next_button.pack()

        self.prev_button = tk.Button(self.root, text="上一首", command=self.prev_song)
        self.prev_button.pack()

        pygame.mixer.init()

    def load_songs(self):
        file_paths = filedialog.askopenfilenames(filetypes=[("音频文件", "*.mp3;*.wav")])
        self.song_list = list(file_paths)

    def play_song(self):
        if self.song_list:
            pygame.mixer.music.load(self.song_list[self.current_song_index])
            pygame.mixer.music.play()

    def pause_song(self):
        pygame.mixer.music.pause()

    def next_song(self):
        if self.song_list:
            self.current_song_index = (self.current_song_index + 1) % len(self.song_list)
            self.play_song()

    def prev_song(self):
        if self.song_list:
            self.current_song_index = (self.current_song_index - 1) % len(self.song_list)
            self.play_song()

    def run(self):
        self.root.mainloop()

if __name__ == "__main__":
    player = MusicPlayer()
    player.run()

